iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 22
0
Modern Web

從零開始進入 JavaScript & TypeScript 的世界系列 第 22

第22天-Literal Types(字面上的型別)

  • 分享至 

  • xImage
  •  

在 TypeScript 有一種型別很特別,就是 Literal Types,你說他是什麼就是什麼。

舉個例子來說,我們宣告一個變數 foo 被且給他型別叫做 SuperMan:

let foo : "SuperMan";

這時候這個 foo 我們只能 assign SuperMan 給他,如果 assign 其他任一直給他都會有問題。

foo = "SuperMan"; // OK
foo = "SuperMan1" // Compile Fail

除了字串之外,其實數字也是可以的,例如:

let boo: 95127;
boo = 95127; // OK
boo = 9527; // Compile Fail

除此之外,他還可像 Enum 一樣,可以是多個數值,其語法就是使用 | 分隔開來就可以。例如:

let color : "Gree" | "Blue" | "Gray" | "Black";

這時候的 color 就可以是上面任一顏色了。

不過一開始,我想說這樣到底跟 Enum 有什麼不一樣呢?他的好處到底在哪裡!

後來想到一點,那就是我如果希望我的 Enum 本身就是可以直接拿來當字串用,我就可以直接用這個,這樣一來就不用在轉來轉去了。


上一篇
第 21 天- Union Types
下一篇
第 23 天-好用的柯里化(Currying)
系列文
從零開始進入 JavaScript & TypeScript 的世界30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言